Current applications are consuming network bandwidth at exponentially increasing rates. Current packet-switching, cell-switching, frame-switching, and other store-and-forward communication networks were designed to provide high-efficiency routing and switching capability for bursty, non-periodic, non-predictable, non-time-sensitive data traffic. However, when attempting to deliver continuous, periodic, predictable, time-sensitive, or urgent information, the store-and-forward style architectures are by their nature, ill-suited to efficiently perform the task. This is because store-and-forward style architectures, by their innate design, first store data, then examine it for addressing and priority, then switch and route it based on priority, then store the data again in various priority queues, and then transmit it to the next switch to repeat the process. These steps are subject to varying slowdowns and delays based on continuously varying, unpredictable network congestion. On the other hand, by its very different nature, continuous, periodic, predictable, time-sensitive, and high-priority information requires immediate switch-through with no delays. Thus, the characteristics which make store-and-forward switching so efficient for bursty, non-periodic, non-predictable, non-time-sensitive data, are the exact opposite of what is needed for continuous, periodic, predictable, time-sensitive, or high-priority information.
As a result of this dilemma, various complicated schemes have been devised in an attempt to compensate for and circumvent these underlying store-and-forward network characteristics. Examples of these schemes include, but are not limited to prioritization schemes, priority queuing mechanisms, constant and variable bit rates, guaranteed and peak bit rates, layer three switching, guaranteed throughput, faster routing, Gigabit routing, switch routing, etc. Yet each of these attempts to circumvent the store-and-forward dilemma still remains built upon the fundamental store-and-forward architecture and switching. The result of these attempts to resolve the problem is a combination of solutions with complicated protocols, complex implementation schemes, and/or inefficient use of network resources.
The explosion of bursty, non-periodic, non-predictable, non-time-sensitive data traffic coupled with converging high-bandwidth, real-time applications over these store-and-forward style packet-, cell-, and frame-based networks inevitably results in network congestion, delays, inconsistent delivery, jitter, packet loss, quality of service degradation, and/or inefficient networks. The applications most noticeably affected will be real-time applications and high-priority information.
Real-time applications are defined as applications where the end user experiences the information in real-time as it flows over the network. Examples of real-time applications are telephony, Internet phone, packet phone video conferencing, video streaming, audio streaming, broadcast, multicast, and any other multimedia streaming applications. Real-time applications may be periodic, predictable, or time-sensitive.
High-priority information is defined as information that must be delivered more quickly, more reliably, more accurately, and ahead of other lower-priority information in the network. Examples of high-priority information include, but are not limited to emergency messages, time-sensitive or time-dependent information, network control messages, guaranteed delivery messages, or any other information deemed more important or more urgent for various reasons.
Real-time applications and high-priority information are dependent upon the rapid, consistent, on-time, non-blocked, non-delayed, non-congested, loss-less, jitter-free, reliable flow of data in real-time. With real-time applications and high-priority information, poor network performance resulting in time delays and quality loss can drastically degrade the quality of the end user experience and the value of the service. At the same time, network operators and administrators would like to avoid network complexities and inefficiencies in delivering real-time applications and high-priority information. These delays, degradation, inefficiencies, and complexities are what this invention seeks to overcome.
Several factors can cause real-time applications such as Internet phone, Internet Video phone, Internet Video Conferencing, Internet Streaming Audio, Internet Streaming Video, and other real-time multimedia applications to suffer in both quality and time delays over packet, cell, or frame-oriented store-and-forward networks. Among them are:                Packet, cell, and frame discard due to a congested switch, which in turn results in dropout glitches (poor quality) and/or increased delay time to retransmit missing packets, cells, or frames.        Packet loss due to alternate routing, which in turn results in dropout glitches (poor quality) and increased processing time to recover from and reconstruct missing packets.        Waiting for alternate path packets to arrive, resulting in time delays.        Reordering of packets that arrive out-of-order, resulting in time delays.        Higher layer processing (layers 2-4) of packets at each router before routing the packets on to the next destination, resulting in time delays.        Loaded/congested networks which slow down packet, cell, or frame delivery, resulting in random, non-predictable time delays. This includes loading, congestion, and/or contention in shared-media networks such as CSMA/CD, Ethernet, Token-Ring, Aloha, shared wireless, or any other shared media contention which may cause congestion or delays. This also includes loading, congestion, and/or contention for resources inside a switch, router, or any other communications device, including but not limited to: input lines, input queues, priority queues, address lookup mechanisms, priority lookup mechanisms, switching fabrics, output queues, output lines, or any other resource sharing mechanisms in data switching or routing.        
Some combination or all of these problems are innate in packet, cell, and frame-oriented networks, their architectures, switches, and protocols. This includes older systems as well as the newer standards like TCPAP version 6, Frame Relay, and ATM. Newer protocols and systems such as Resource Reservation Protocol (RSVP), Bit Stream Reservation Techniques, layer two Switching, layer three Switching, Cut-though switching, Flow Switching and other techniques have been designed in an attempt to reduce these problems for real-time or high-priority information. However, none of these efforts have been able to completely eliminate a fundamental architectural tenet of packet, cell, and frame-based switching in store-and-forward networks—i.e., when network buffers get overloaded, these systems must drop packets and slow down to “decongest.” This can affect and slow down real-time applications and high-priority information. For example, in some of these efforts, once a real-time packet is in the input buffer, it can be routed through even a congested switch with a higher priority. However, if the input buffers are full, the real-time application may not be able to get its packet in to be recognized as a high-priority packet. On the other hand, efforts to overcome this problem by reserving capacity on the switch means the switch will, in effect, limit its input or throughput to reserve capacity for guaranteed applications, thus resulting in inefficiencies in the switch.
Streaming broadcast or multicast audio and video applications deal with these store-and-forward effects by having large buffers and error correction at the receiving end (client) to compensate for the uncontrollable delays and losses. However, the large buffers result in long start-time delays for both audio and video “broadcast-style” streaming applications. The end user must wait while the buffers fill with the initial incoming packets before he/she can see or hear the program.
Internet Phone, Internet Video Phone, and Internet Video Conferencing applications must reduce the size of these buffers to minimize the awkward delay time between end-users. They also use compression algorithms to reduce network congestion. Unfortunately, neither of these techniques is sufficient, since network overload and congestion will still cause packet discarding, slowdown, and jitter, enough to cause awkward pauses between end-users. The resulting conversation is similar to the delayed satellite conversations that are sometimes encountered in overseas calls. As mentioned previously, techniques to solve these problems, such as guaranteed constant bit rate or guaranteed peak bit rate, either introduce their own inefficiencies or don't really guarantee the results one hundred percent of the time.
Newer networks are proposing to switch at very high gigabit speeds to minimize the delay times for real-time applications such as telephony. Nevertheless, as more high-bandwidth applications like telephony, web graphics, and streaming video get dumped into these gigabit networks, they too, will either be designed to be inefficient, or will get congested and slow down with the resulting degradation of speed and quality.
Clearly, there is a need for a way to:                guarantee delivery of selected packets, such as real-time and high-priority packets, like Internet phone, audio and video streaming, video conferencing, and urgent messages.        assure that selected packets, such as real-time and high-priority packets, arrive on time so that large buffers, long start delays, and awkward pauses are reduced or eliminated.        assure that selected packets with higher priority will be delivered more rapidly through the network than lower-priority packets.        overcome or bypass the packet networks' innate characteristic of slowing down the delivery of specific packets when the network gets loaded or congested.do the above tasks with a high degree of network efficiency.        